const BASE_URL = 'https://api.warmstill.fun'
//https://api.warmstill.fun
//
//同时发送异步代码的次数， 防止一次点击中有多次请求， 用于处理
let ajaxTimes = 0;
export const MyRequest = (options) => {
	//解构请求头参数
	let header = {
		...options.header
	}
	if (options.url !== '/warmstill/user/user-tokens') {
		header['accessToken'] = uni.getStorageSync('TOKEN')
		header['Authorization'] = uni.getStorageSync('TOKEN')
	}
	ajaxTimes++
	// 显示加载中 效果
	uni.showLoading({
		title: "加载中",
		mask: true,
	});
	return new Promise((resolve, reject) => {
		uni.request({
			url: BASE_URL + options.url,
			method: options.method || 'GET',
			data: options.data || {},
			header,
			success: (res) => {
				if (res.statusCode == 200 && res.data.code !== 0) {
					// uni.clearStorage();
					// uni.showToast({
					// 	title: "登录失败",
					// })
					// setTimeout(() => {
					// 	return uni.showToast({
					// 		title: "请求数据失败，请重新登录",
					// 		duration: 1500
					// 	})
					// }, 1000)
				}
				if (res.statusCode === 500) {
					uni.showToast({
						title: "请求数据失败,请重新登录",
						duration: 1500
					})
					setTimeout(() => {
						uni.clearStorage();
						uni.reLaunch({
							url: '/pages/Login/Login',
						})
					}, 600)
				}
				// 因为返回的是promise对象，所以要让promised的状态改变为成功
				resolve(res)
			},
			fail: (err) => {
				uni.showToast({
					title: "请求接口失败,请重新登录"
				})
				uni.clearStorage();
				uni.reLaunch({
					url: '/pages/Login/Login',
				})
				//同理
				reject(err)
			},
			complete() {
				ajaxTimes--;
				if (ajaxTimes === 0) {
					//  关闭正在等待的图标
					uni.hideLoading();
				}
			}
		})
	})
}
